//
//  LPerson.swift
//  one
//
//  Created by huangfeng on 2018/5/7.
//  Copyright © 2018年 huangfeng. All rights reserved.
//

import UIKit

class LPerson: NSObject {

    private var _name: String?
    
    var name: String? {
        get {
            return _name
        }
        set{
            _name = newValue
        }
    }
    
    //oc中的readonly 重写 getter 方法
    var title: String {
        get {
            return "Mr. " + (name ?? "")
        }
    }
    
    //只读属性的简写 - 直接return
    // 又称为计算型属性  本身不保存内容， 都是通过计算获得结果
    //类似于一个 '函数'  没有参数 没有返回值
    var title2: String {
        
        print("计算 name \(name)")
        return "Mr XXX. " + (name ?? "")
    }
    
    //懒加载的title 本质是一个闭包 带执行   懒加载的变量 只有在第一次使用时初始化一次
    lazy var title3: String = {
        return "Lazy" + (self.name ?? "")
    }()
}
